The present invention relates generally to the field of software verification, and more particularly to detection and prediction of erroneous software components.
Static program analysis is the analysis of computer software (for example, code structure, syntax, and data flow) that is performed without actually executing the computer software. In many cases the static program analysis is performed on some version/revision of the source code, and in the other cases, the analysis is performed on some form of the object (i.e. compiled) code. Static program analysis is typically performed by an automated tool, but can also include human code reviews. In the course of performing the static program analysis, software bugs may be identified within the software program. A software bug is anything (for example, an error, flaw, failure, or fault) in a software program that causes the software program to produce an incorrect or unexpected result, or to behave in unintended ways.